package main

import (
	_ "beegoProject13/models/auth"
	_ "beegoProject13/routers"
	"beegoProject13/utils"
	"fmt"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

/*
9.68【个人中心模块】个人信息编辑页面完善
9.69【个人中心模块】个人信息编辑功能实现一
9.70【个人中心模块】个人信息编辑功能实现二
	1. 菜单排序 home_controller.go 38H 73H
	2. 权限列表页面添加 (个人中心，一级菜单)，(个人信息，二级菜单),(工资条，二级菜单)，角色列表勾选个人中心生效
	3. user - my_center_controller.go Get
	4. 路由
	5. user-edit.html 拷贝 my-center-edit.html
	6. 数据库内添加my_center到url
    7. my_center_controller.go Get 模块内容
	8. my-center-edit.html 53H 164H 178H 190H
	9. my_center_controller 密码对比
    10. index.html 个人信息路径修改 32H

9.71【个人中心模块】登出功能完成
	1. login_controller.go Logout
	2. 退出登录  路由
	3. index.html 35H


9.72【个人中心模块】修改原有模型的两种方式
	1. 针对用户信息xls表格模型进行数据库字段修改  知了课堂2020年8月工资明细.xlsx
	2. models - auth.go - User模型 34H
	3. 方法一: 在现有数据库手动插入一行
	4. 方法二: 针对表格和数据进行sql转存，然后删除表格重新创建。  go run main.go orm syncdb -v

*/

func init() {
	user := beego.AppConfig.DefaultString("mysql::Username", "root")
	pwd := beego.AppConfig.DefaultString("mysql::Password", "Ideal123")
	host := beego.AppConfig.DefaultString("mysql::Host", "127.0.0.1")
	port := beego.AppConfig.DefaultInt("mysql::Port", 3306)
	dbName := beego.AppConfig.DefaultString("mysql::DbName", "beegoProject")

	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=true&loc=PRC",
		user, pwd, host, port, dbName)

	orm.RegisterDriver("mysql", orm.DRMySQL)
	orm.RegisterDataBase("default", "mysql", dsn)

	db, err := orm.GetDB("default")
	if err != nil {
		log.Fatal(err)
	} else if err := db.Ping(); err != nil {
		log.Fatal(err)
	}
}

func main() {
	orm.RunCommand()
	/*	orm.Debug = true*/
	beego.BConfig.WebConfig.Session.SessionOn = true

	// 未登录请求拦截
	beego.InsertFilter("/main/*", beego.BeforeRouter, utils.LoginFilter)

	// 日志
	logs.SetLogger(logs.AdapterMultiFile, `{"filename":"logs/beego.log","separate":["error","info","debug"]}`)

	beego.Run()
}
